# 1.字典的创建
a = {}  # dict
# 有点像  Map<String, Object>
b = { 'name': '张三', 'age': 20, 'hobby': {'编程', '旅游'} }
print(b)
c = dict()
d = dict(b)
print(c)
print(d)
# 修改，已存在的key即修改
d.update(name='李四')
print(d)
# 添加，不存在的key即添加
d.update(sex='男')
print(d)

# 2.字典的常用操作
# 字典元素的访问
print(d['name'])
print(d.get('sex'))

print(d.keys())  # 可以用以遍历
print(d.values())
# [('name', '李四'), ('age', 20), ('hobby', {'旅游', '编程'}), ('sex', '男')]
print(d.items())  # 可以用以遍历

# 遍历
print('=' * 30)
for key in d.keys():
    print(f'key: {key}, value: {d.get(key)}')
print('=' * 30)
for key, value in d.items():
    print(f'key: {key}, value: {value}')

# 3.字典元素的添加和修改
x = {'name': '张三', 'age': 20, 'hobby': {'编程', '旅游'}}
x['name'] = '王五'  # 修改
print(x)
x['sex'] = '男'  # 添加
print(x)
x.update(age=25)  # 修改
x.update(phone='13355556666')  # 添加
print(x)
# 操作多个，不存在的添加，存在的修改
x.update(age=30, address='湖北宜昌')
print(x)

# 4.字典元素的删除
x.pop('address')
print(x)

# 5.字典推导式的写法
y = {k: v for k,v in d.items() if k == 'name' }
print(y)